home *** CD-ROM | disk | FTP | other *** search
/ Programming Languages Suite / ProgramD2.iso / Borland / Borland C++ V5.02 / CHKBOOK.PAK / ROWVIEW.H < prev    next >
C/C++ Source or Header  |  1997-05-06  |  3KB  |  77 lines

  1. // rowview.h : interface of the CRowView class
  2. //
  3. // This is a part of the Microsoft Foundation Classes C++ library.
  4. // Copyright (C) 1992-1995 Microsoft Corporation
  5. // All rights reserved.
  6. //
  7. // This source code is only intended as a supplement to the
  8. // Microsoft Foundation Classes Reference and related
  9. // electronic documentation provided with the library.
  10. // See these sources for detailed information regarding the
  11. // Microsoft Foundation Classes product.
  12.  
  13. // This class implements the behavior of a scrolling view that presents
  14. // multiple rows of fixed-height data.  A row view is similar to an
  15. // owner-draw listbox in its visual behavior; but unlike listboxes,
  16. // a row view has all of the benefits of a view (as well as scroll view),
  17. // including perhaps most importantly printing and print preview.
  18.  
  19. class CRowView : public CScrollView
  20. {
  21.     DECLARE_DYNAMIC(CRowView)
  22. public:
  23.     CRowView();
  24.  
  25. // Attributes
  26. protected:
  27.     int m_nRowWidth;            // width of row in current device units
  28.     int m_nRowHeight;           // height of row in current device untis
  29.     int m_nPrevSelectedRow;     // index of the most recently selected row
  30.     int m_nPrevRowCount;        // most recent row count, before update
  31.     int m_nRowsPerPrintedPage;  // how many rows fit on a printed page
  32.  
  33. // Operations
  34. public:
  35.     virtual void UpdateRow(int nInvalidRow);    // called by derived class's
  36.                                                 // OnUpdate
  37.  
  38. // Overridables
  39. protected:
  40.     virtual void GetRowWidthHeight(CDC* pDC, int& nRowWidth,
  41.         int& nRowHeight) = 0;
  42.     virtual int GetActiveRow() = 0;
  43.     virtual int GetRowCount() = 0;
  44.     virtual void OnDrawRow(CDC* pDC, int nRow, int y, BOOL bSelected) = 0;
  45.     virtual void ChangeSelectionNextRow(BOOL bNext) = 0;
  46.     virtual void ChangeSelectionToRow(int nRow) = 0;
  47.  
  48. // Implementation
  49. protected:
  50.     // standard overrides of MFC classes
  51.     void OnInitialUpdate();
  52.     virtual void OnDraw(CDC* pDC);  // overridden to draw this view
  53.     virtual void OnPrepareDC(CDC* pDC, CPrintInfo* pInfo = NULL);
  54.     virtual BOOL OnPreparePrinting(CPrintInfo* pInfo);
  55.     virtual void OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo);
  56.     virtual void OnPrint(CDC* pDC, CPrintInfo* pInfo);
  57.  
  58.     virtual void CalculateRowMetrics(CDC* pDC)
  59.         { GetRowWidthHeight(pDC, m_nRowWidth, m_nRowHeight); }
  60.     virtual void UpdateScrollSizes();
  61.     virtual CRect RowToWndRect(CDC* pDC, int nRow);
  62.     virtual int RowToYPos(int nRow);
  63.     virtual void RectLPtoRowRange(const CRect& rectLP,
  64.             int& nFirstRow, int& nLastRow, BOOL bIncludePartiallyShownRows);
  65.     virtual int LastViewableRow();
  66.     virtual ~CRowView();
  67.  
  68. // Generated message map functions
  69. protected:
  70.     //{{AFX_MSG(CRowView)
  71.     afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);
  72.     afx_msg void OnSize(UINT nType, int cx, int cy);
  73.     afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
  74.     //}}AFX_MSG
  75.     DECLARE_MESSAGE_MAP()
  76. };
  77.